windowsに公式なsshdをインストールし、linuxからwindowsにssh接続
コンニチハ、千葉です。
Microsoft公式からWin32-OpenSSHがプレリリースされております。
弊社のブログでも紹介があり、windows > linuxへの接続してみたというエントリーがあります。
今回は、windowsにsshdをインストールし接続し、linux > windowsのssh接続を行ってみます。
OpenSSHのインストール
まずは、OpenSSHをインストールします。こちらよりOpenSSHをダウンロードします。
※上記リンクは2015/11/9版なので最新版はこちらよりご確認ください
ダウンロードしたzipファイルを展開します。今回は、Cドライブ直下にフォルダを配置することにします。
作業は、powershellから実施するのでpowershellを起動します。想定した場所にファイルあることを確認しましょう。
PS C:\Users\Administrator> dir C:\OpenSSH-Win32
環境変数Pathに、「C:\OpenSSH-Win32」を追加してpowershellを起動しなおします。
パスが通っていることを確認します。
PS C:\Users\Administrator> ssh --help unknown option -- - usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q cipher | cipher-auth | mac | kex | key] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
SSHキーを設定します
sshdで利用するキーファイルを作成します。
PS C:\Users\Administrator> cd C:\OpenSSH-Win32 PS C:\OpenSSH-Win32> PS C:\OpenSSH-Win32> ssh-keygen.exe -A C:\OpenSSH-Win32\ssh-keygen.exe: generating new host keys: RSA DSA ECDSA ED25519
ファイアウォールの設定
22番ポートを開放してあげます。
PS C:\OpenSSH-Win32> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH Name : {c0fa26f8-00ef-4fa5-a262-28c1a25760d0} DisplayName : SSH Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : 規則は、ストアから正常に解析されました。 (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local
sshdのセットアップ
sshdセットアップ用のcmdを実行します。
PS C:\OpenSSH-Win32> setup-ssh-lsa.cmd
リブート
OSの再起動を行います。
sshdサービスへの登録
サービスで起動するようにsshdをサービスに登録します。
PS C:\Users\Administrator> sshd install Service installed successfully
sshdサービスを起動
sshdをサービスから起動してみましょう。
PS C:\Users\Administrator> net start sshd SSHD サービスを開始します. SSHD サービスは正常に開始されました。
windows起動時に自動でsshdを起動させたい場合は、こちらを実行
PS C:\Users\Administrator> Set-Service sshd -StartupType Automatic
linuxからwindowsにsshで接続してみる
いざ!sshでwindowsに接続してみます。
local$ ssh Administrator@xxx.xxx.xxx The authenticity of host 'XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX)' can't be established. ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXX Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'XXX.XXX.XXX.XXX' (ECDSA) to the list of known hosts. Administrator@XXX.XXX.XXX.XXX's password: Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. Administrator@WIN-UAIF2EQBHK8 C:\Users\Administrator>
パスワードにはAdministratorのパスワードを入力。
接続できました!
おそらくコマンドプロンプトでの接続のようです。(コマンドを打つと文字コードが違うので文字化けします)
sshdのアンイストール
やっぱりやめよう。というときのアンインストール。
PS cd C:\> net stop sshd PS cd C:\> sshd.exe uninstall
さいごに
これで、windowsにもsshでログインできることが確認できました! コマンドラインで作業できるようになると、とっても便利ですね。